﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Transactions;
using negocios;
using objetos;
using publico;
  


namespace softsales.pagina.cadastro
{
  
    public partial class cadastro_editar : System.Web.UI.Page
    {
        // cadastro
        BLL_TB_CADASTRO b_tb_cadastro = new BLL_TB_CADASTRO();
        OBJ_TB_CADASTRO o_tb_cadastro = new OBJ_TB_CADASTRO();

        // cadastro enderco
        BLL_TB_ENDERECO_CADASTRO b_tb_endereco_cadastro = new BLL_TB_ENDERECO_CADASTRO();
        OBJ_TB_ENDERECO_CADASTRO o_tb_endereco_cadastro = new OBJ_TB_ENDERECO_CADASTRO();

        // cadastro bancaria 
        OBJ_TB_CADASTRO_BANCARIA o_tb_cadastro_bancaria = new OBJ_TB_CADASTRO_BANCARIA();
        BLL_TB_CADASTRO_BANCARIA b_tb_cadastro_bancaria = new BLL_TB_CADASTRO_BANCARIA();


        // cadastro fisica
        BLL_TB_CADASTRO_FISICA b_tb_cadastro_fisica = new BLL_TB_CADASTRO_FISICA();
        OBJ_TB_CADASTRO_FISICA o_tb_cadastro_fisica = new OBJ_TB_CADASTRO_FISICA();

        // cadastro juridica
        BLL_TB_CADASTRO_JURIDICA b_tb_cadastro_juridica = new BLL_TB_CADASTRO_JURIDICA();
        OBJ_TB_CADASTRO_JURIDICA o_tb_cadastro_juridica = new OBJ_TB_CADASTRO_JURIDICA();

        // cadastro email
        BLL_TB_CADASTRO_EMAIL b_tb_cadastro_email = new BLL_TB_CADASTRO_EMAIL();
        OBJ_TB_CADASTRO_EMAIL o_tb_cadastro_email = new OBJ_TB_CADASTRO_EMAIL();


        // contato

        BLL_TB_CONTATO b_tb_contato = new BLL_TB_CONTATO();
        OBJ_TB_CONTATO o_tb_contato = new OBJ_TB_CONTATO();

        // cadastro_tipo

        OBJ_TB_CADASTRO_TIPO o_tb_cadastro_tipo = new OBJ_TB_CADASTRO_TIPO();
        BLL_TB_CADASTRO_TIPO b_tb_cadastro_tipo = new BLL_TB_CADASTRO_TIPO();

        OBJ_TB_CADASTRO_HISTORICO o_tb_cadastro_historico = new OBJ_TB_CADASTRO_HISTORICO();
        BLL_TB_CADASTRO_HISTORICO b_tb_cadastro_historico = new BLL_TB_CADASTRO_HISTORICO();


        // dropdownlist
        BLL_TB_CARGO b_tb_cargo = new BLL_TB_CARGO();
        BLL_TB_DEPARTAMENTO b_tb_departamento = new BLL_TB_DEPARTAMENTO();
        BLL_TB_RAMO_ATIVIDADE b_tb_ramo_atividade = new BLL_TB_RAMO_ATIVIDADE();
        BLL_TB_TIPO_LOGRADOURO b_tb_tipo_logradouro = new BLL_TB_TIPO_LOGRADOURO();
        BLL_TB_TIPO_ENDERECO b_tb_tipo_endereco = new BLL_TB_TIPO_ENDERECO();
        BLL_TB_TIPO_SITUACAO_CADASTRO b_tb_tipo_situacao_cadastro = new BLL_TB_TIPO_SITUACAO_CADASTRO();
        BLL_TB_TIPO_CONTATO b_tb_tipo_contato = new BLL_TB_TIPO_CONTATO();
        

        BLL_TB_PAISES b_tb_paises = new BLL_TB_PAISES();
        BLL_TB_CIDADE b_tb_cidade = new BLL_TB_CIDADE();
        BLL_TB_UF b_tb_uf = new BLL_TB_UF();
        BLL_TB_ESTADO_CIVIL b_tb_estado_civil = new BLL_TB_ESTADO_CIVIL();
        BLL_TB_TIPO_CADASTRO_EMAIL b_tb_tipo_cadastro_email = new BLL_TB_TIPO_CADASTRO_EMAIL();

        BLL_TB_LOG_ERRO tb_log_erro = new BLL_TB_LOG_ERRO();
        // chklist
        BLL_TB_TIPO_CADASTRO b_tb_tipo_cadastro = new BLL_TB_TIPO_CADASTRO();



        private string pagina { get; set; }


        protected void Page_Load(object sender, EventArgs e)
        {
            if (PUB_SESSAO.Logado())
            {
                if (!IsPostBack)
                {


                    b_tb_cargo.PreencheControle(DDL_ID_CARGO, true);
                    b_tb_cargo.PreencheControle(DDL_ID_CARGO_CONTATO, true);
                    b_tb_tipo_contato.PreencheControle(DDL_ID_TIPO_CONTATO, true);
                    b_tb_cidade.PreencheControle(DDL_ID_CIDADE, true);
                    b_tb_departamento.PreencheControle(DDL_ID_DEPARTAMENTO, true);
                    b_tb_paises.PreencheControle(DDL_ID_PAIS, true);                    
                    b_tb_tipo_endereco.PreencheControle(DDL_ID_ENDERECO_TIPO, true);
                    b_tb_tipo_logradouro.PreencheControle(DDL_ID_LOGRADOURO, true);
                    b_tb_uf.PreencheControle(DDL_ID_UF, true);
                    b_tb_estado_civil.PreencheControle(DDL_ID_ESTADO_CIVIL, true);
                    b_tb_tipo_situacao_cadastro.PreencheControle(DDL_ID_SITUACAO, true);
                    b_tb_tipo_cadastro_email.PreencheControle(DDL_TIPO_CADASTRO_EMAIL, true);
                    b_tb_tipo_cadastro.PreencheControle(CHK_TIPO_CADASTRO, false);

                    // oculta inicialmente os botoes alterar do endereco e cadastro email
                    BTN_ALTERAR_CADASTRO_EMAIL.Visible = false;
                    BTN_ALTERAR_ENDERECO.Visible = false;

                    

                    TXT_DT_CADASTRO.Text = DateTime.Now.ToShortDateString();

                    DDL_PESSOA.Items.Add(new ListItem("Jurídica", "J"));
                    DDL_PESSOA.Items.Add(new ListItem("Física", "F"));


                    DDL_SEXO.Items.Add(new ListItem("Masculino", "M"));
                    DDL_SEXO.Items.Add(new ListItem("Feminino", "F"));

                    TXT_DT_CADASTRO.Enabled = false;
                    TAB_CONTAINER.ActiveTab = TAB_CADASTRO;

                    if (Request["pg"] != null)
                    {
                        LBL_TITULO_PAGINA.Text = string.Format("Editar Cadastro {0}", Request["pg"].ToString());

                    }
                    

                    if (Request["id"] != null)
                    {
 
                            // busca os nomes 
                            string id_cadastro = string.Format("{0}",Request["id"].ToString());            
                            Editar(id_cadastro);
                            PreencheCheckListTipoCadastro(id_cadastro);
           
                    }

                    

                }



            }

        }

    

        private void Editar(String id_cadastro)
        {
            try
            {

                o_tb_cadastro = b_tb_cadastro.SelecionarObjetoPorId(Convert.ToInt32(id_cadastro));
                HF_ID.Value = o_tb_cadastro.id.ToString();

                TXT_NOME.Text = o_tb_cadastro.nome.ToString();
                DDL_ID_SITUACAO.SelectedValue = o_tb_cadastro.id_situacao.ToString();
                DDL_ID_TIPO_CADASTRO_FISCAL.SelectedValue = o_tb_cadastro.id_tipo_cadastro_fiscal.ToString();
                DDL_PESSOA.SelectedValue = o_tb_cadastro.pessoa.ToString();
                CHK_SIT_ATIVO.Checked = o_tb_cadastro.sit_ativo;
                TXT_OBSERVACAO.Text = o_tb_cadastro.observacao.ToString();
                TXT_DT_CADASTRO.Text = o_tb_cadastro.dt_cadastro.ToString();




                if (o_tb_cadastro.pessoa == "J")
                {


                    o_tb_cadastro_juridica = b_tb_cadastro_juridica.SelecionarObjetoPorId(Convert.ToInt32(id_cadastro));
                    TXT_FANTASIA.Text = o_tb_cadastro_juridica.cnpj.ToString();
                    TXT_CNPJ.Text = o_tb_cadastro_juridica.cnpj.ToString();
                    TXT_INSCRICAO_ESTADUAL.Text = o_tb_cadastro_juridica.insc_est.ToString();
                    TXT_INSCRICAO_ESTADUAL_ST.Text = o_tb_cadastro_juridica.insc_est_st.ToString();
                    TXT_INSCRICAO_MUNICIPAL.Text = o_tb_cadastro_juridica.insc_mun.ToString();                 
                    TXT_CNPJ.ReadOnly = true;
                    TXT_CNPJ.Enabled = false;
                    DDL_PESSOA.Enabled = false;

                    // oculta paineis
                    PNL_PESSOA_JURIDICA.Visible = true;
                    PNL_PESSOA_FISICA.Visible = false;

                }
                else
                {
                    o_tb_cadastro_fisica = b_tb_cadastro_fisica.SelecionarObjetoPorId(Convert.ToInt32(id_cadastro));
                    TXT_CPF.Text = o_tb_cadastro_fisica.cpf.ToString();
                    TXT_REGISTRO_GERAL.Text = o_tb_cadastro_fisica.registro_geral.ToString();
                    TXT_ORGAO_EMISSOR.Text = o_tb_cadastro_fisica.orgao_emissor.ToString();
                    TXT_DT_EMISSAO.Text = o_tb_cadastro_fisica.dt_emissao.ToString();
                    TXT_TITULO_ELEITOR.Text = o_tb_cadastro_fisica.titulo_eleitor.ToString();
                    DDL_ID_DEPARTAMENTO.SelectedValue = o_tb_cadastro_fisica.id_departamento.ToString();
                    DDL_ID_CARGO.SelectedValue = o_tb_cadastro_fisica.id_cargo.ToString();
                    TXT_DT_NASCIMENTO.Text = o_tb_cadastro_fisica.dt_nascimento.ToString();
                    DDL_ID_ESTADO_CIVIL.SelectedValue = o_tb_cadastro_fisica.id_estado_civil.ToString();
                    TXT_NACIONALIDADE.Text = o_tb_cadastro_fisica.nacionalidade.ToString();
                    TXT_NATURALIDADE.Text = o_tb_cadastro_fisica.naturalidade.ToString();
                    TXT_PAI.Text = o_tb_cadastro_fisica.pai.ToString();
                    TXT_MAE.Text = o_tb_cadastro_fisica.mae.ToString();
                    TXT_DT_ADMISSAO.Text = o_tb_cadastro_fisica.dt_admissao.ToString();
                    TXT_DT_DEMISSAO.Text = o_tb_cadastro_fisica.dt_demissao.ToString(); 
                    TXT_CPF.Enabled = false;
                    TXT_CPF.ReadOnly = true;
                    DDL_PESSOA.Enabled = false;

                    // oculta paineis
                    PNL_PESSOA_FISICA.Visible = true;
                    PNL_PESSOA_JURIDICA.Visible = false;

                }

                PreencheEnderecoCadastro();
                PreencheContato();              
                PreencheEmail();
            }
            catch (Exception ex)
            {
                tb_log_erro.IncluirLogErro(ex);
                 Master.MSG_ALERTA("Erro ao tentar editar o formulário.");
            }

           

        }

        private void PreencheEnderecoCadastro()
        {

            GRV_ENDERECO_CADASTRO.DataSource = b_tb_endereco_cadastro.Selecionar(string.Format("tb_endereco_cadastro.id_cadastro={0}", HF_ID.Value), "");
            GRV_ENDERECO_CADASTRO.DataBind();
        }

        private void PreencheContato()
        {
            GRV_TB_CONTATO.DataSource = b_tb_contato.Selecionar(string.Format("tb_contato.id_cadastro={0}", HF_ID.Value), "");
            GRV_TB_CONTATO.DataBind();
        }

        private void PreencheEmail()
        {

            GRV_CADASTRO_EMAIL.DataSource = b_tb_cadastro_email.Selecionar(string.Format("tb_cadastro_email.id_cadastro={0}", HF_ID.Value), "");
            GRV_CADASTRO_EMAIL.DataBind();
        }

        private void PreencheCheckListTipoCadastro(String id_cadastro)
        {
            for (int i = 0; i <= CHK_TIPO_CADASTRO.Items.Count - 1; i++)
            {

                foreach (OBJ_TB_CADASTRO_TIPO o_tb_cadastro_tipo in b_tb_cadastro_tipo.SelecionarLista(string.Format("tb_cadastro_tipo.id_cadastro={0}",id_cadastro),""))
                {
                    if (o_tb_cadastro_tipo.id_tipo_cadastro == Convert.ToInt32(CHK_TIPO_CADASTRO.Items[i].Value))
                    {
                        CHK_TIPO_CADASTRO.Items[i].Selected = true;
                    }

                }


            }

                

        }


        protected void BTN_SALVAR_Click(object sender, EventArgs e)
        {
            try
            {
                bool erro = false;

                int id_cadastro = 0;

                if (TXT_NOME.Text == string.Empty)
                {
                    erro = true;
                }
                if (DDL_PESSOA.SelectedValue == "J")
                {
                    if (TXT_CNPJ.Text == string.Empty)
                    {
                        erro = true;
                    }
                }
                else
                {
                    if (TXT_CPF.Text == string.Empty)
                    {
                        erro = true;
                    }
                }


                if (!erro)
                {

                    try
                    {

                        using (TransactionScope scope = new TransactionScope())
                        {
                            id_cadastro = Convert.ToInt32(HF_ID.Value);

                            // CADASTRO
                            o_tb_cadastro.id = id_cadastro;
                            o_tb_cadastro.dt_cadastro = DateTime.Now;
                            o_tb_cadastro.id_situacao = Convert.ToInt32(DDL_ID_SITUACAO.SelectedValue);
                            o_tb_cadastro.id_tipo_cadastro_fiscal = Convert.ToInt32(DDL_ID_TIPO_CADASTRO_FISCAL.SelectedValue);
                            o_tb_cadastro.nome = TXT_NOME.Text;
                            o_tb_cadastro.observacao = TXT_OBSERVACAO.Text;
                            o_tb_cadastro.pessoa = DDL_PESSOA.SelectedValue;
                            o_tb_cadastro.sit_ativo = CHK_SIT_ATIVO.Checked;


                            // PESSOA JURIDICA 
                            if (DDL_PESSOA.SelectedValue == "J")
                            {

                                o_tb_cadastro.cnpj_cpf = TXT_CNPJ.Text;
                                o_tb_cadastro_juridica.cnpj = TXT_CNPJ.Text;
                                o_tb_cadastro_juridica.fantasia = TXT_FANTASIA.Text;
                                o_tb_cadastro_juridica.insc_est = TXT_INSCRICAO_ESTADUAL.Text;
                                o_tb_cadastro_juridica.insc_est_st = TXT_INSCRICAO_ESTADUAL_ST.Text;
                                o_tb_cadastro_juridica.insc_mun = TXT_INSCRICAO_MUNICIPAL.Text;


                                // INCLUI O CADASTRO e CADASTRO JURIDICA
                                b_tb_cadastro.Alterar(o_tb_cadastro);
                                o_tb_cadastro_juridica.id_cadastro = id_cadastro;
                                b_tb_cadastro_juridica.Alterar(o_tb_cadastro_juridica);

                            }
                            else
                            {

                                o_tb_cadastro.cnpj_cpf = TXT_CPF.Text;
                                o_tb_cadastro_fisica.cpf = TXT_CPF.Text;
                                o_tb_cadastro_fisica.dt_admissao = PUB_FUNCOES.TrataData(TXT_DT_ADMISSAO.Text);
                                o_tb_cadastro_fisica.dt_demissao = PUB_FUNCOES.TrataData(TXT_DT_DEMISSAO.Text);
                                o_tb_cadastro_fisica.dt_emissao = PUB_FUNCOES.TrataData(TXT_DT_EMISSAO.Text);
                                o_tb_cadastro_fisica.dt_nascimento = PUB_FUNCOES.TrataData(TXT_DT_NASCIMENTO.Text);
                                o_tb_cadastro_fisica.id_cargo = Convert.ToInt32(DDL_ID_CARGO.SelectedValue);
                                o_tb_cadastro_fisica.id_departamento = Convert.ToInt32(DDL_ID_DEPARTAMENTO.SelectedValue);
                                o_tb_cadastro_fisica.id_estado_civil = Convert.ToInt32(DDL_ID_ESTADO_CIVIL.SelectedValue);
                                o_tb_cadastro_fisica.mae = TXT_MAE.Text;
                                o_tb_cadastro_fisica.nacionalidade = TXT_NACIONALIDADE.Text;
                                o_tb_cadastro_fisica.naturalidade = TXT_NATURALIDADE.Text;
                                o_tb_cadastro_fisica.orgao_emissor = TXT_ORGAO_EMISSOR.Text;
                                o_tb_cadastro_fisica.pai = TXT_PAI.Text;
                                o_tb_cadastro_fisica.registro_geral = TXT_REGISTRO_GERAL.Text;
                                o_tb_cadastro_fisica.sexo = DDL_SEXO.SelectedValue;
                                o_tb_cadastro_fisica.titulo_eleitor = TXT_TITULO_ELEITOR.Text;

                                // INCLUIR O CADASTRO E CADASTRO FISICA
                                b_tb_cadastro.Alterar(o_tb_cadastro);
                                o_tb_cadastro_fisica.id_cadastro = id_cadastro;
                                b_tb_cadastro_fisica.Alterar(o_tb_cadastro_fisica);

                            }



                            // HISTORICO 

                            o_tb_cadastro_historico.dt_atualizacao = DateTime.Now;
                            o_tb_cadastro_historico.id_cadastro = id_cadastro;
                            o_tb_cadastro_historico.id_usuario = PUB_SESSAO.Id;
                            o_tb_cadastro_historico.operacao = "A";
                            b_tb_cadastro_historico.Incluir(o_tb_cadastro_historico);



                            b_tb_cadastro_tipo.Excluir(string.Format("tb_cadastro_tipo.id_cadastro={0}", HF_ID.Value));
                            foreach (ListItem item in CHK_TIPO_CADASTRO.Items)
                            {
                                if (item.Selected)
                                {
                                    o_tb_cadastro_tipo.id_cadastro = id_cadastro;
                                    o_tb_cadastro_tipo.id_tipo_cadastro = Convert.ToInt32(item.Value);
                                    b_tb_cadastro_tipo.Incluir(o_tb_cadastro_tipo);
                                }

                            }

                            string msg = PUB_MENSAGEM.MSG_ALTERACAO;

                            Master.MSG_ALERTA(msg, "default.aspx", false);


                            scope.Complete();
                            scope.Dispose();

                        } 
                        // scope



                    }
                    catch (Exception ex)
                    {
                        tb_log_erro.IncluirLogErro(ex);
                        Master.MSG_ERRO(ex.StackTrace.ToString());

                    }



                }
                else
                {
                    Master.MSG_ALERTA("Favor preencher todos os campos requeridos");


                }
            }
            catch (Exception)
            {

                throw;
            }
            
           
        }

        protected void BTN_CANCELAR_Click(object sender, EventArgs e)
        {
            if (Request["pg"] != null)
            {
                String param = Request["pg"].ToString();
                Response.Redirect(string.Format("~/pagina/{0}/default.aspx", param.ToLower(), false));
            }
        }

        protected void ValidaCheckBox(object sender, ServerValidateEventArgs args)
        {
            args.IsValid = true;
            if (CHK_TIPO_CADASTRO.SelectedIndex == -1)
            {

                args.IsValid = false;

            }

        }



        private void LimpaCamposEmail()
        {

            TXT_EMAIL_1.Text = string.Empty;
            DDL_TIPO_CADASTRO_EMAIL.SelectedValue = string.Empty;

        }



        private void LimpaCamposEnderecoCadastro()
        {
            DDL_ID_LOGRADOURO.SelectedValue = string.Empty;
            TXT_ENDERECO.Text = string.Empty;
            TXT_NUMERO.Text = string.Empty;
            TXT_BAIRRO.Text = string.Empty;
            TXT_CEP.Text = string.Empty;
            TXT_COMPLEMENTO.Text = string.Empty;
            DDL_ID_PAIS.SelectedValue = string.Empty;
            DDL_ID_CIDADE.SelectedValue = string.Empty;
            DDL_ID_UF.SelectedValue = string.Empty;
            TXT_TELEFONE.Text = string.Empty;
            TXT_CELULAR.Text = string.Empty;
            TXT_FAX.Text = string.Empty;
            DDL_ID_ENDERECO_TIPO.SelectedValue = string.Empty;
            CHK_SIT_PRINCIPAL.Checked = false;

        }


        protected void BTN_INCLUIR_ENDERECO_Click(object sender, EventArgs e)
        {
            try
            {
                if (DDL_ID_LOGRADOURO.SelectedValue != string.Empty && TXT_ENDERECO.Text != string.Empty && TXT_NUMERO.Text != string.Empty && TXT_TELEFONE.Text != string.Empty)
                {

                    o_tb_endereco_cadastro.id_cadastro = Convert.ToInt32(HF_ID.Value);
                    o_tb_endereco_cadastro.bairro = TXT_BAIRRO.Text;
                    o_tb_endereco_cadastro.celular = TXT_CELULAR.Text;
                    o_tb_endereco_cadastro.cep = TXT_CEP.Text;
                    o_tb_endereco_cadastro.complemento = TXT_COMPLEMENTO.Text;
                    o_tb_endereco_cadastro.endereco = TXT_ENDERECO.Text;
                    o_tb_endereco_cadastro.fax = TXT_FAX.Text;
                    o_tb_endereco_cadastro.id_cidade = Convert.ToInt32(DDL_ID_CIDADE.SelectedValue);
                    o_tb_endereco_cadastro.id_endereco_tipo = Convert.ToInt32(DDL_ID_ENDERECO_TIPO.SelectedValue);
                    o_tb_endereco_cadastro.id_logradouro = Convert.ToInt32(DDL_ID_LOGRADOURO.SelectedValue);
                    o_tb_endereco_cadastro.id_pais = Convert.ToInt32(DDL_ID_PAIS.SelectedValue);
                    o_tb_endereco_cadastro.id_uf = Convert.ToInt32(DDL_ID_UF.SelectedValue);
                    o_tb_endereco_cadastro.numero = TXT_NUMERO.Text;
                    o_tb_endereco_cadastro.sit_principal = CHK_SIT_PRINCIPAL.Checked;
                    o_tb_endereco_cadastro.telefone = TXT_TELEFONE.Text;
                    b_tb_endereco_cadastro.Incluir(o_tb_endereco_cadastro);

                    GRV_ENDERECO_CADASTRO.DataSource = b_tb_endereco_cadastro.Selecionar(string.Format("tb_endereco_cadastro.id_cadastro = {0}", HF_ID.Value), "");
                    GRV_ENDERECO_CADASTRO.DataBind();

                    LimpaCamposEnderecoCadastro();

                    Master.MSG_ALERTA("Inclusão de endereço realizado com sucesso.");
                }
            }
            catch (Exception ex)
            {

                tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Erro ao tentar incluir endereço.");
            }
            
        }

        protected void BTN_INCLUIR_CADASTRO_EMAIL_Click(object sender, EventArgs e)
        {

            try
            {
                if (TXT_EMAIL_1.Text != string.Empty && DDL_TIPO_CADASTRO_EMAIL.SelectedValue != string.Empty)
                {

                    o_tb_cadastro_email.id_cadastro = Convert.ToInt32(HF_ID.Value);
                    o_tb_cadastro_email.email = TXT_EMAIL_1.Text;
                    o_tb_cadastro_email.id_tipo_email = Convert.ToInt32(DDL_TIPO_CADASTRO_EMAIL.SelectedValue);
                    b_tb_cadastro_email.Incluir(o_tb_cadastro_email);

                    GRV_CADASTRO_EMAIL.DataSource = b_tb_cadastro_email.Selecionar(string.Format("tb_cadastro_email.id_cadastro = {0}", HF_ID.Value), "");
                    GRV_CADASTRO_EMAIL.DataBind();

                    Master.MSG_ALERTA("Inclusão de email realizado com sucesso.");

                }
            }
            catch (Exception ex)
            {
                tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Erro ao tentar incluir email");
            }
           

        }

        protected void IMG_BTN_EXCLUIR_CADASTRO_EMAIL_Click(object sender, ImageClickEventArgs e)
        {

            try
            {
                ImageButton btn = (ImageButton)sender;

                string id = btn.CommandArgument;

                o_tb_cadastro_email.id = Convert.ToInt32(id);
                b_tb_cadastro_email.Excluir(o_tb_cadastro_email);

                GRV_CADASTRO_EMAIL.DataSource = b_tb_cadastro_email.Selecionar(string.Format("tb_cadastro_email.id_cadastro={0}",HF_ID.Value), "");
                GRV_CADASTRO_EMAIL.DataBind();
            }
            catch (Exception ex)
            {
                tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Erro ao tentar excluir email.");
            }
            
        }

        protected void IMG_BTN_EXCLUIR_ENDERECO_CADASTRO_Click(object sender, ImageClickEventArgs e)
        {

            try
            {
                ImageButton btn = (ImageButton)sender;

                string id = btn.CommandArgument;

                o_tb_endereco_cadastro.id = Convert.ToInt32(id);
                b_tb_endereco_cadastro.Excluir(o_tb_endereco_cadastro);

                GRV_ENDERECO_CADASTRO.DataSource = b_tb_endereco_cadastro.Selecionar(string.Format("tb_endereco_cadastro.id_cadastro={0}", HF_ID.Value), "");
                GRV_ENDERECO_CADASTRO.DataBind();
            }
            catch (Exception ex)
            {

                tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Erro ao tentar excluir endereço.");
            }
           
        }

        protected void IMG_BTN_EDITAR_ENDERECO_CADASTRO_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                ImageButton btn = (ImageButton)sender;

                string id = btn.CommandArgument;
                // recebo o objeto com o endereco
                o_tb_endereco_cadastro = b_tb_endereco_cadastro.SelecionarObjetoPorId(Convert.ToInt32(id));

                HF_ID_ENDERECO.Value = o_tb_endereco_cadastro.id.ToString();
                DDL_ID_LOGRADOURO.SelectedValue = o_tb_endereco_cadastro.id_logradouro.ToString();
                TXT_ENDERECO.Text = o_tb_endereco_cadastro.endereco.ToString();
                TXT_NUMERO.Text = o_tb_endereco_cadastro.numero.ToString();
                TXT_BAIRRO.Text = o_tb_endereco_cadastro.bairro.ToString();
                TXT_CEP.Text = o_tb_endereco_cadastro.cep.ToString();
                TXT_COMPLEMENTO.Text = o_tb_endereco_cadastro.complemento.ToString();
                DDL_ID_PAIS.SelectedValue = o_tb_endereco_cadastro.id_pais.ToString();
                DDL_ID_CIDADE.SelectedValue = o_tb_endereco_cadastro.id_cidade.ToString();
                DDL_ID_UF.SelectedValue = o_tb_endereco_cadastro.id_uf.ToString();
                TXT_TELEFONE.Text = o_tb_endereco_cadastro.telefone.ToString();
                TXT_CELULAR.Text = o_tb_endereco_cadastro.celular.ToString();
                TXT_FAX.Text = o_tb_endereco_cadastro.fax.ToString();
                DDL_ID_ENDERECO_TIPO.SelectedValue = o_tb_endereco_cadastro.id_endereco_tipo.ToString();
                CHK_SIT_PRINCIPAL.Checked = o_tb_endereco_cadastro.sit_principal;

                BTN_ALTERAR_ENDERECO.Visible = true;
                BTN_INCLUIR_ENDERECO.Visible = false;

            }
            catch (Exception ex)
            {
                tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Erro ao tentar carregar informações de endereço.");
            }
           




        }

        protected void BTN_ALTERAR_ENDERECO_Click(object sender, EventArgs e)
        {
            try
            {
                // ENDERECO
                o_tb_endereco_cadastro.id = Convert.ToInt32(HF_ID_ENDERECO.Value);
                o_tb_endereco_cadastro.id_cadastro = Convert.ToInt32(HF_ID.Value);
                o_tb_endereco_cadastro.bairro = TXT_BAIRRO.Text;
                o_tb_endereco_cadastro.celular = TXT_CELULAR.Text;
                o_tb_endereco_cadastro.cep = TXT_CEP.Text;
                o_tb_endereco_cadastro.complemento = TXT_COMPLEMENTO.Text;
                o_tb_endereco_cadastro.endereco = TXT_ENDERECO.Text;
                o_tb_endereco_cadastro.fax = TXT_FAX.Text;
                o_tb_endereco_cadastro.id_cidade = Convert.ToInt32(DDL_ID_CIDADE.SelectedValue);
                o_tb_endereco_cadastro.id_endereco_tipo = Convert.ToInt32(DDL_ID_ENDERECO_TIPO.SelectedValue);
                o_tb_endereco_cadastro.id_logradouro = Convert.ToInt32(DDL_ID_LOGRADOURO.SelectedValue);
                o_tb_endereco_cadastro.id_pais = Convert.ToInt32(DDL_ID_PAIS.SelectedValue);
                o_tb_endereco_cadastro.id_uf = Convert.ToInt32(DDL_ID_UF.SelectedValue);
                o_tb_endereco_cadastro.numero = TXT_NUMERO.Text;
                o_tb_endereco_cadastro.sit_principal = CHK_SIT_PRINCIPAL.Checked;
                o_tb_endereco_cadastro.telefone = TXT_TELEFONE.Text;
                b_tb_endereco_cadastro.Alterar(o_tb_endereco_cadastro);

                GRV_ENDERECO_CADASTRO.DataSource = b_tb_endereco_cadastro.Selecionar(string.Format("tb_endereco_cadastro.id_cadastro = {0}", HF_ID.Value), "");
                GRV_ENDERECO_CADASTRO.DataBind();


                Master.MSG_ALERTA("Endereço alterado com sucesso.");

                LimpaCamposEnderecoCadastro();
            }
            catch (Exception ex)
            {
                tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Ero ao tentar alterar o endereço");
            }
          
        }

        protected void BTN_ALTERAR_CADASTRO_EMAIL_Click(object sender, EventArgs e)
        {
            try
            {
                if (TXT_EMAIL_1.Text != string.Empty && DDL_TIPO_CADASTRO_EMAIL.SelectedValue != string.Empty)
                {
                    o_tb_cadastro_email.id = Convert.ToInt32(HF_ID_CADASTRO_EMAIL.Value);
                    o_tb_cadastro_email.id_cadastro = Convert.ToInt32(HF_ID.Value);
                    o_tb_cadastro_email.email = TXT_EMAIL_1.Text;
                    o_tb_cadastro_email.id_tipo_email = Convert.ToInt32(DDL_TIPO_CADASTRO_EMAIL.SelectedValue);
                    b_tb_cadastro_email.Alterar(o_tb_cadastro_email);

                    GRV_CADASTRO_EMAIL.DataSource = b_tb_cadastro_tipo.Selecionar(string.Format("tb_cadastro_email.id_cadastro = {0}", HF_ID.Value), "");
                    GRV_CADASTRO_EMAIL.DataBind();

                    
                    Master.MSG_ALERTA("Email alterado com sucesso.");

                    BTN_ALTERAR_CADASTRO_EMAIL.Visible = false;
                    
                }
            }
            catch (Exception ex)
            {

                tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Ero ao tentar alterar o email");
            }
           
        }

        protected void IMG_BTN_EDITAR_CADASTRO_EMAIL_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                ImageButton btn = (ImageButton)sender;

                string id = btn.CommandArgument;

                o_tb_cadastro_email = b_tb_cadastro_email.SelecionarObjetoPorId(Convert.ToInt32(id));

                HF_ID_CADASTRO_EMAIL.Value = o_tb_cadastro_email.id.ToString();
                HF_ID.Value = o_tb_cadastro_email.id_cadastro.ToString();
                TXT_EMAIL_1.Text = o_tb_cadastro_email.email.ToString();

                BTN_ALTERAR_CADASTRO_EMAIL.Visible = true;
                
            }
            catch (Exception ex)
            {
                tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Erro ao tentar editar o cadastro de email");
            }
                     
        }

        protected void CHK_SIT_PRINCIPAL_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
                List<string> lista = new List<string>();
                foreach (OBJ_TB_ENDERECO_CADASTRO o_tb_endereco_cadastro in b_tb_endereco_cadastro.SelecionarLista(string.Format("tb_endereco_cadastro.id_cadastro={0}", HF_ID.Value), ""))
                {
                    if (o_tb_endereco_cadastro.sit_principal)
                    {
                        lista.Add(o_tb_endereco_cadastro.id.ToString());
                    }

                }


                if (lista.Count > 0)
                {
                    CHK_SIT_PRINCIPAL.Checked = false;
                }


            }
            catch (Exception ex)
            {

                tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Erro ao tentar mudar definir o endereço principal do cadastro.");
            }
        




        }

        protected void TXT_CPF_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (b_tb_cadastro.SelecionarLista(string.Format("cnpj_cpf = '{0}'", TXT_CPF.Text), "").Count > 0)
                {
                    Master.MSG_ALERTA("CPF já cadastrado.");
                    TXT_CPF.Text = string.Empty;
                }
            }
            catch (Exception ex)
            {


                tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Erro ao tentar consultar CPF");
            }
            
        }

        protected void TXT_CNPJ_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (b_tb_cadastro.SelecionarLista(string.Format("cnpj_cpf = '{0}'", TXT_CNPJ.Text), "").Count > 0)
                {
                    Master.MSG_ALERTA("CNPJ já cadastrado.");
                    TXT_CNPJ.Text = string.Empty;
                }
            }
            catch (Exception ex)
            {
                
                
                tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Erro ao tentar consultar CPF");
            }
          
        }

        protected void DDL_ID_UF_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (DDL_ID_UF.SelectedValue != string.Empty)
            {
                b_tb_cidade.PreencheControle(DDL_ID_CIDADE, string.Format("tb_cidade.id_uf = {0}", DDL_ID_UF.SelectedValue), false);
            }
        }

        protected void DDL_PESSOA_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (DDL_PESSOA.SelectedValue != string.Empty)
            {
                if (DDL_PESSOA.SelectedValue == "J")
                {
                    PNL_PESSOA_JURIDICA.Visible = true;
                    PNL_PESSOA_FISICA.Visible = false;
                }
                else
                {
                    PNL_PESSOA_JURIDICA.Visible = false;
                    PNL_PESSOA_FISICA.Visible = true;
                }
            }
        }

        protected void BTN_INCLUIR_CONTATO_Click(object sender, EventArgs e)
        {
            try
            {
                o_tb_contato.id_cargo = Convert.ToInt32(DDL_ID_CARGO_CONTATO.SelectedValue);
                o_tb_contato.id_cadastro = Convert.ToInt32(HF_ID.Value);
                o_tb_contato.Tb_cargo.desc_cargo = b_tb_cargo.SelecionarObjetoPorId(o_tb_contato.id_cargo).desc_cargo.ToString();
                o_tb_contato.id_tipo_contato = Convert.ToInt32(DDL_ID_TIPO_CONTATO.SelectedValue);
                o_tb_contato.nome_contato = TXT_NOME_CONTATO.Text.Trim();
                o_tb_contato.sit_ativo = Convert.ToBoolean(CHK_SIT_ATIVO.Checked);

                b_tb_contato.Incluir(o_tb_contato);

                PreencheContato();

            }
            catch (Exception)
            {
                
                throw;
            }
        }

        protected void IMG_BTN_EXCLUIR_CONTATO_Click(object sender, ImageClickEventArgs e)
        {
            try
            { 
                ImageButton btn = (ImageButton)sender;

                int id = Convert.ToInt32(btn.CommandArgument);

                if (id > 0)
                {
                    o_tb_contato = b_tb_contato.SelecionarObjetoPorId(id);
                    b_tb_contato.Excluir(o_tb_contato);
                }
                PreencheContato();

            }
            catch (Exception ex)
            {

                tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Erro ao tentar excluir contato.");
            }
        }

    }
}